struct Rgba32_Component {
	r byte
	g byte
	b byte
	a byte
}

// unions support embedding
// union member access must be performed in an unsafe block
union Rgba32 {
	Rgba32_Component
	value u32
}

fn main() {
	clr1 := Rgba32{
		value: 0x008811FF
	}

	clr2 := Rgba32{
		Rgba32_Component: Rgba32_Component{
			a: 128
		}
	}

	sz := sizeof(Rgba32)
	unsafe {
		println('Size: ${sz}B,clr1.b: $clr1.b,clr2.b: $clr2.b')
	}
}
